import matplotlib.pyplot as plt
import numpy as np
from matplotlib.ticker import MultipleLocator

# 使用字典存储各模型的数据
data = {
    'ICTCLAS': [0.8103, 0.8112],
    'ERNIE Bot': [0.8393, 0.8434]
}

# 模型名称
models = list(data.keys())
# 设置柱状图宽度
bar_width = 0.2
# 设置横坐标位置
index = np.arange(len(['Accuracy', 'F1 Score']))

# 设置图表大小，这里将宽度设置为10英寸，高度设置为6英寸
plt.figure(figsize=(4, 5))

# 绘制柱子
for i, model in enumerate(models):
    plt.bar(index + i * bar_width, data[model], width=bar_width,
            label=model)

# 添加x轴标签
plt.xticks(index + 0.5 * bar_width, ['Accuracy', 'F1 Score'])
# 添加y轴标签
plt.ylabel('')
# 添加图表标题
plt.title('')
# 将图例位置修改为右上角
# plt.legend(bbox_to_anchor=(0.95, 1.1), loc='upper left')
plt.legend()

# 获取当前坐标轴对象
ax = plt.gca()
# 设置顶部和右侧边框颜色为透明
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')

# 设置y轴刻度间隔为0.02（可根据需要调整）
y_major_locator = MultipleLocator(0.05)
ax.yaxis.set_major_locator(y_major_locator)

# 设置y轴的范围，从0.5开始
plt.ylim(0.75, max([max(values) for values in data.values()]) + 0.05)

# 显示图表
plt.show()